約 3,964,443 件
https://w.atwiki.jp/java_pro/pages/38.html
public class MethodTest { public static ??? getYourName(String myouji, String name){ String[] result; result = ?????; ???? = myouji; ???? = name; return ????; } public static void main(String[] args){ String[] shimei; ???? = getYourName("java", "太郎"); System.out.println("名字は" + ????); System.out.println("名前は" + ????); } }
https://w.atwiki.jp/java_pro/pages/27.html
import java.io.*; public class Copy1_2 { public static void main(String[] args){ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { String line = reader.readLine(); while (line.charAt(0) != a ){ System.out.println(line); line = reader.readLine(); } System.out.println("終了します"); } catch (IOException e){ System.out.println(e); } } }
https://w.atwiki.jp/ce00582/pages/1250.html
import javax.swing.*; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.*; import java.awt.Color; import java.awt.BasicStroke; public class tax34 extends JPanel{ public static void main(String[] args){ JFrame frame = new JFrame(); tax34 app = new tax34(); frame.getContentPane().add(app); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(0, 0, 500, 500); frame.setTitle("練習"); frame.setVisible(true); } public void paintComponent(Graphics g){ int n; double data[]=new double[101]; Graphics2D g2 = (Graphics2D)g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); data=tax(); for (n=1;n 100;n++){ g2.draw(new Line2D.Double(5*n, 500-100*data[n], 5*n+5,500-100*data[n+1])); } } static double[] tax(){ double th[]= new double[101]; double c[]= new double[101]; double y[]= new double[101]; int opc[]= new int[101]; int opy[]= new int[101]; int opq[]= new int[101]; double u[][][]=new double[101][3][3]; double ww[][][]=new double[100][3][3]; double v[][][][]=new double[100][3][3][21]; int gotoc[][][][]=new int[100][3][3][21]; int gotoy[][][][]=new int[100][3][3][21]; int gotoq[][][][]=new int[100][3][3][21]; double endv[][]=new double[3][3]; int endc[][]=new int[3][3]; int endy[][]=new int[3][3]; int endq[][]=new int[3][3]; int s; double ls; double w; double cs; double ys; double b1; double b2; double wel; double maxwel; int t; int n; int n1; int n2; int pp; int q; int j; double c1; double l1; double h; double u1; int ns1; int ns2; int qx; int nx1; int nx2; double vs; double v1; double maxv; double dc; double dy; int e; double data1[]=new double[101]; double data2[]=new double[201]; data1=ex1(); data2=ex2(); for (s=1;s 101;s++){ c[s]=data2[s]; y[s]=data2[s+100]; } for (s=1;s 101;s++){ th[s]=data1[s]; } h=0.001; t=0; while(t 1000){ for (s=1;s 101;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ c1=c[s]+n1*h; l1=(y[s]+n2*h)/th[s]; u1=ux(c1,l1); u[s][n1+1][n2+1]=u1; } } } for (s=1;s 100;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ c1=c[s]+n1*h; l1=(y[s]+n2*h)/th[s+1]; u1=ux(c1,l1); ww[s][n1+1][n2+1]=u1; } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ for (q=-10;q 11;q++){ v[1][n1+1][n2+1][q+10]=-999; } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ q=n2-n1; v[1][n1+1][n2+1][q+10]=u[1][n1+1][n2+1]; } } for (s=2;s 100;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ for (q=-10;q 11;q++){ u1=u[s][n1+1][n2+1]; qx=q-n1+n2; pp=0; if (qx 10)pp=100; if (qx -10)pp=100; if (pp 50)qx=0; vs=-999; ns1=0; ns2=0; for (nx1=-1;nx1 2;nx1++){ for (nx2=-1;nx2 2;nx2++){ v1=u1+v[s-1][nx1+1][nx2+1][qx+10]; if (ww[s-1][nx1+1][nx2+1] u1)v1=-999; if (v1 vs)ns1=nx1; if (v1 vs)ns2=nx2; if (v1 vs)vs=v1; } } if (pp 50)vs=-999; gotoc[s][n1+1][n2+1][q+10]=ns1; gotoy[s][n1+1][n2+1][q+10]=ns2; gotoq[s][n1+1][n2+1][q+10]=qx; v[s][n1+1][n2+1][q+10]=vs; } } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ u1=u[100][n1+1][n2+1]; qx=n2-n1; vs=-999; ns1=0; ns2=0; for (nx1=-1;nx1 2;nx1++){ for (nx2=-1;nx2 2;nx2++){ v1=u1+v[99][nx1+1][nx2+1][qx+10]; if (ww[99][nx1+1][nx2+1] u1){ v1=-999; } if (v1 vs){ ns1=nx1; } if (v1 vs){ ns2=nx2; } if (v1 vs){ vs=v1; } } } endc[n1+1][n2+1]=ns1; endy[n1+1][n2+1]=ns2; endq[n1+1][n2+1]=qx; endv[n1+1][n2+1]=vs; } } maxv=-999; ns1=0; ns2=0; for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ if (endv[n1+1][n2+1] maxv){ ns1=n1; } if (endv[n1+1][n2+1] maxv){ ns2=n2; } if (endv[n1+1][n2+1] maxv){ maxv=endv[n1+1][n2+1]; } } } opc[100]=ns1; opy[100]=ns2; opc[99]=endc[opc[100]+1][opy[100]+1]; opy[99]=endy[opc[100]+1][opy[100]+1]; opq[99]=endq[opc[100]+1][opy[100]+1]; for (j=1;j 99;j++){ s=99-j; opc[s]=gotoc[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; opy[s]=gotoy[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; opq[s]=gotoq[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; } e=0; for (s=1;s 101;s++){ e=e+opc[s]*opc[s]+opy[s]*opy[s]; } for (s=1;s 101;s++){ c[s]=c[s]+opc[s]*h; y[s]=y[s]+opy[s]*h; } System.out.println(e); if (e 2){ h=h/2; } if (h 0.00001){ t=10000; } t=t+1; } for (s=1;s 100;s++){ dy=y[s+1]-y[s]; dc=c[s+1]-c[s]; if (dy 0)System.out.println(1-dc/dy); } return c; } static double[] ex2(){ double th[]= new double[101]; int s; double tl; double tr; double ls; double w; double cs; double ys; double b1; double b2; double tr1; double tr2; double tr3; double wel; double maxwel; double maxtl; double maxtr; int t; int n; double h; double c[]= new double[101]; double y[]= new double[101]; double data1[]=new double[101]; double data[]=new double[201]; int n1; int n2; data1=ex1(); for (s=1;s 101;s++){ th[s]=data1[s]; } maxwel=-999; maxtr=0; maxtl=0; for (n=20;n 45;n++){ tl=0.01*n; tr1=0.01; tr2=0.02; tr=tr1; b1=bud(tl,tr1,th); t=0; while (t 100) { b2=bud(tl,tr2,th); tr3=tr2-b2*(tr2-tr1)/(b2-b1); tr1=tr2; tr2=tr3; b1=b2; if (b2*b2 0.00001)t=1000; t=t+1; } tr=tr2; wel=seekwel(tl,tr,th); if (wel maxwel)maxtl=tl; if (wel maxwel)maxtr=tr; if (wel maxwel)maxwel=wel; } tl=maxtl; tr=maxtr; for (s=1;s 101;s++){ w=(1-tl)*th[s]; ls=(w-tr)/(2*w); if (ls 0)ls=0; c[s]=w*ls+tr; y[s]=th[s]*ls; } for (s=1;s 101;s++){ data[s]=c[s]; data[s+100]=y[s]; } return data; } static double ux(double c1,double l1){ double u1; double c3; double l3; int pp; pp=0; c3=c1; l3=l1; if (c3 0)pp=100; if (l3 0)pp=100; if (l3 1)pp=100; if (pp 50)c3=0.5; if (pp 50)l3=0.5; u1=Math.log(c3)+Math.log(1-l3); if (pp 50)u1=-999; return u1; } static double bud(double tl,double tr,double th[]){ double bx; int s; double w; double y1; double c1; double l1; bx=0; for (s=1;s 101;s++){ w=(1-tl)*th[s]; l1=(w-tr)/(2*w); if (l1 0)l1=0; y1=th[s]*l1; c1=w*l1+tr; bx=bx+y1-c1; } return bx; } static double seekwel(double tl,double tr,double th[]){ double sw; int s; double w; double l1; double c1; sw=0; for (s=1;s 101;s++){ w=(1-tl)*th[s]; l1=(w-tr)/(2*w); if (l1 0)l1=0; c1=w*l1+tr; sw=sw+ux(c1,l1); } return sw; } static double[] ex1(){ double p; double mu; double sig; double yy; double th[]= new double[101]; int s; mu=0; sig=0.39; for (s=1;s 101;s++){ p=0.01*s-0.005; yy=seeky(p,mu,sig); th[s]=Math.exp(yy); } return th; } static double f(double x,double mu,double sig){ double pi,x1,x2,x3,fx; pi = 3.1415; x1=-Math.pow(x - mu,2) / (2*Math.pow(sig,2)); x2=Math.exp(x1); x3=sig*Math.pow(2*pi,0.5); fx=x2/x3; return fx; } static double g(double y,double mu, double sig){ double gx,h,x; int n,t; gx=0; h=0.001; t=(int)(y/h); for (n=-2000;n t;n++){ x=n*h; gx=gx+f(x,mu,sig)*h; } return gx; } static double seeky(double p,double mu,double sig){ double g1,g2,y1,y2,y3; int t; y1=0.4; y2=-0.2; g1=g(y1,mu,sig); t=0; while(t 100){ g2=g(y2,mu,sig); y3=y2+(p-g2)*(y2-y1)/(g2-g1); y1=y2; y2=y3; g1=g2; if (Math.pow(p-g2,2) 0.0001)t=1000; t=t+1; } return y2; } }
https://w.atwiki.jp/setechdiv/pages/75.html
文法 CASE分岐 Forループ 遷移先の指定 正規表現 オブジェクト・属性の説明 Dictionaryオブジェクト TextStreamオブジェクト 連想配列 readonly属性 new Date 仕様 クエリ文字列の字数制限 画面の値を取得する 別フレームの要素の取得 リストボックス~色々な値の取得~ ラジオボタンの選択値の取得 ひっかかり IE6のonClickがタコい理由 インラインフレームのsubmit new Date 今日の日付と何日か前の日付を比較しようと、 var foo = new Date();var bar = new Date(2011 ,2 -1 ,1);var hoge = (foo - bar)/86400000;alert hoge; とやったら、なんでか小数点以下に。で、 var huga = new Date();var foo = new Date(huga.getFullYear(),huga,getMonth - 1,huga.getDate());var bar = new Date(2011 ,2 -1 ,1);var hoge = (foo - bar)/86400000;alert hoge; にしたら正常に! 引数なしの時生成される当日日付オブジェクトは、 引数ありの時と何か違うのか? CASE分岐 switch([条件]){ case [a] [処理a]; break; case [b] [処理b]; break; case [c] [処理c]; break; default break; } ポイント: 1. if文と同じはじめ方(if([条件]){[以下処理]}) 2. case [場合] で分ける 3. 一つの条件につき必ず最後にbreak;すること(この分岐を抜ける事) 4. "default"は、VBにおける"else"と同じ OR条件にしたいとき(Case 1,2のように) switch([条件]){ case [a] case [b] [処理ab]; break; case [c] [処理c]; break; default break; } 上へ Forループ VBとのめんどくさい違い for文のto指定は ×「1 = 10」(になるまで) ○「1 11」(である間) VBの Right, Mid, Left 等に当たる substr, charAt関数は、 ×「1文字目から2文字」 ○「0番目から2文字」 配列の要素番号のように、文字の先頭を0番目と数える。 上へ 遷移先の指定 _top - 一番上の階層 _parent - 一つ上の階層 全てのページをindexページ内でiframeとして呼出し表示している場合など、 _topで指定するとindexと置き換わってしまうので注意。 上へ 正規表現 http //blog.wonder-boys.net/?p=294 まず上の記事の"「/」で囲む"ルールを知らなかった。。。 ∥例(半角/全角スペースをトリムする)∥ varX.replace(/^[ ]+|[ ]+$/,"") /~/ …/で挟まれた部分が正規表現 ^ …後に続く文字「から始まる」という指定 [ ] …[ ]内の文字のいずれか、という指定(ここでは半角/全角スペース) | …javascriptの演算子。Or演算子。 $ …前にある文字「で終わる」という指定 + …直前の1文字が一個以上、という数量指定 先頭に半角/全角スペースがある(複数も含む)、または 末尾に半角/全角スペースがある(複数も含む)とき、 ""と置換える 上へ Dictionaryオブジェクト ハッシュテーブルのようにKeyに対するItemを持つことができる要素 上へ TextStreamオブジェクト http //www.atmarkit.co.jp/fwin2k/tutor/cformwsh19/cformwsh19_01.html http //msdn.microsoft.com/ja-jp/library/cc364272.aspx 上へ 連想配列 var obj = {hoge huga }; この場合、 hogeがキー(プロパティというらしい)で、 huga がhogeにつく値、という感じ。 ハッシュテーブルと同じ感覚とみた。 でも、キーをいくらでも増やせるので、構造体配列っぽくもあるかもしれない・・・ ちなみに、 アマゾンとかであるような「上位リストを選択したら下位リストに絞込がかかる」連動リストは、 以下のような関数で実現可能。 「既にある配列targetから特定のキーを持つものを抽出して新規に配列を作る」 用意するもの: 全項目入りの配列 target 絞り込む項目名 key 絞込のキーワード value function find(target, key, value) { var ret = new Array(); for(var index in target) { var item = target[index]; if(item[key] == value) { ret.push(item); } } return ret; } 上へ readonly属性 javascriptでオブジェクトのreadonly属性を変更するときは、 readOnly と、Oを大文字で書かないといけないらしい・・・ なんで? なぞすぎる。disabledは全部小文字でいけるのによォ~ッ! あ、input要素のdisabledをtrueにしちゃっていたら、 値をForm送信できないようだ。。 同じ内容のhidden項目を持っておくか、送信直前にdisabled解除するかしかなさそう。 上へ 別フレームの要素の取得 子フレーム同士…documentの前にparent.フレーム名をつける Parent.フレーム名.document.getElementById( [ID] ); 上へ リストボックス~色々な値の取得~ 色々といっても…2こ! コード 表示名称 でリストボックスを持っている場合、 リストボックス.value でコードが、 リストボックス.options[リストボックス.selectedIndex].text で表示中の文字列が取得出来ちゃう! 上へ ラジオボタンの選択値の取得 var hoge = document.getElementsByName("huga"); for(var i=0;i hoge.length;i++) { if (hoge[i].value == 0 ) { //... } } 上へ IE6のonClickがタコい理由 問題: リンククリックで、遷移ではなく動作(行追加、アイテム削除など)したいとき、 a href="javascript void(0)" onclick="javascript funcExe();" て書くと、IE6でだけは、動かない。 原因:(先輩伝授) javascript void(0)は、それ自体がhref属性の動きを制御するおまじないではなく、 ただのURLダミーみたいなもん。 だから、onClickで明示的にreturn false を記述しておかないと、href が動作してしまう。 で、動作した場合、「void(0)ってなんじゃ」となって落ちる(私の推測)。 対策: form の onsubmit でチェック関数を呼び出して、 関数内でチェックエラーとなったときreturn false してsubmitを回避する、という処理があるが、 あれと同じように、return false してhrefを回避する必要がある。っぽいのだ! 上へ インラインフレームのsubmit ふつうにできる。 document.iFrameName.FormName.submit(); 上へ クエリ文字列の字数制限 512Biteとか1024Biteとか、サーバ・OSによって異なるらしい 上へ .
https://w.atwiki.jp/dbdbdbdb/pages/23.html
ここはjava会 課題研究java班です はい 課研の時以外はSkypeで活動してます その名も 『Java会議室』 その中に2つの派閥があります java会1 サトル (全体の編集とかその他諸々、ストーリーも) 圧力ナベ@ (変数・乱数・関数プログラム制作) けん (グラフィック) 吾郎 (ボタン係) 夏休みも絶賛javaっておりまーす アプレットとボタンに苦戦中 現在、基本システムを創意製作中。 まぁ最悪の場合無駄になるかもしれないけど。(by圧力ナベ) java会2 そんちゅ ナチュラルテイスト(㊥はSkype未参加) こっちの状況は知りません そんちゅか姐さんに聞いてください 完成したらここに貼っときます 同時に攻略wikiも作る予定 編集:吾郎 協力:javaの皆さん 外部協力者:我らが太田先生(重要)
https://w.atwiki.jp/java_pro/pages/28.html
import java.io.*; public class Copy1_3 { public static void main(String[] args){ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { String line = reader.readLine(); int n = Integer.parseInt(line); while (n != 0){ System.out.println(n * 10); line = reader.readLine(); n = Integer.parseInt(line); } System.out.println("終了します"); } catch (IOException e){ System.out.println(e); } } }
https://w.atwiki.jp/creation/pages/12.html
Java Communication API Javaからシリアル・パラレルポートを制御するためのAPI。ネイティブメソッドを使用している。 http //java.sun.com/products/javacomm/index.jsp Javadoc http //java.sun.com/products/javacomm/javadocs/javax/comm/package-summary.html ※なぜかNon-Frameバージョンしかない。 なお、3rd Partyではあるが、 RXTXはJava CommAPI互換の上にI2C、RS485にも対応した実装を行っている。また対応するOSもWin32、Linux、Macと主要なものを網羅している。 パッケージ名が違うので注意。 バージョン 最新版は3.0Update1(2006年3月現在)。 対応するポート 現在対応しているor使用できるポートは以下の通りです。 シリアルポート(RS-232C) パラレルポート また下記はWindowsXP+ USB-シリアル変換器での動作を確認しています。 シリアルポート(RS-422) シリアルポート(RS-485) RS-422,485においてもCommAPIの使用方法はRS-232Cとまったく同じです。 対応するOS Windows Sunがサポートしている。 ※2005年11月15日現在ダウンロードできなくなっている。バイナリの機能はJREに標準装備されたとの噂もあるが、真相は定かではない。現在下記の方法で使える可能性があるらしいが、現在検討中。 Java Comm APIのlinux版をSunのサイトからダウンロード jre/libにjavax.comm.propertiesをコピー jre/lib/extにcomm.jarをコピー 以上 追記(2005/11/15):やはり上記ではうまくいかないようだ。 jre/binにwin32com.dllがないから?? また裏技的に、下記のサイト http //www-06.ibm.com/jp/developerworks/ibm/020913/j_i-barcd.html の最下部にある「必要なcommポート・ファイルをダウンロードしてください。」というリンクをクリックすると以前のcomm.jar,javax.comm.properties,win32com.dllをダウンロードすることが出来る。 Sun公式サイト http //java.sun.com/products/javacomm/downloads/index.html 参考 http //www.okakogi.go.jp/People/miwa/program/how2com/how2com.html RXTXも使用可能。 http //www.rxtx.org/ Solaris Sunがサポートしている。 Sun Microsystems http //java.sun.com/products/javacomm/downloads/index.html Linux 数年前からサンが正式にサポートしている。 http //java.sun.com/products/javacomm/downloads/index.html RXTXも使用可能。 http //www.rxtx.org/ 参考 http //www.viste.com/Java/CommAPI/CommAPI.htm http //www.viste.com/Java/CommAPI/install-japanese.html http //www.tini.prug.or.jp/linuxinstall.html IBM版もある。 IBMJava2-JAVACOMM http //www.novell.com/products/linuxpackages/enterpriseserver/i386/ibmjava2-javacomm.html JCLという物もあったらしい。が、RXTXに吸収されているらしい。 JCL http //www.geeksville.com/~kevinh/linuxcomm.html Mac 下記を使えばいいらしいが詳細は不明。動くかどうかも不明。使った方はご一報を。 http //homepage.mac.com/pcbeard/javax.comm.MRJ/ RXTXは使用可能。 http //www.rxtx.org/ 自作 下記を使えばどんなOSにも対応可能。というか、C言語の雛形しかないので、その先は自作する必要がある。腕に自身のある人向け。 http //www.openje.org/kommapi/ 製品版 Serialio.com SerialPort 製品版のため有償だが、PCから組み込みまで幅広いプラットフォームをサポートしている。 https //serialio.com/products/serialport/serialport.htm CommPortIdentifier CommPortIdentifierを使うとパラレル・シリアル両ポートの高度な制御が可能となる。 具体的には 名前によるポートの取得(COM1,/dev/ttyS0など) 使用可能なポート名のリストの取得 オーナー名を付けたポートのオープン オーナー情報を利用したポートのコントロール などなど。Serial,Pararellにとらわれず、抽象的にコントロールできる。 なお、初期化はコンストラクタではなく CommPort port = CommPortIdentifier.getPortIdentifier("COM1"); のように行う。 使用可能なポートの取得 COM1や/dev/ttyS0などの機種やOSに依存する名前をソースコード中にハードコーディング{{fn ソース中に変更不可能な形で記述してしまうこと。特に文字列を決め打ちしてしまうことを指す場合が多い。}}するのはJavaの性質上好ましくない。 また、名前は合っていても、機種によってはそのポートは実際には存在しないことも多い。(特にノートパソコンなど) そこでポート名を動的に取得し、GUIやコマンドラインから対話的にポートを選択するようにプログラムするのが最もスマートな方法だと言える。 使用可能なポート名を取得するには次のような方法を使う。 CommPortIdentifier portId; ArrayList list = new ArrayList(); Enumeration en = CommPortIdentifier.getPortIdentifiers(); while (en.hasMoreElements()) { portId = (CommPortIdentifier) en.nextElement(); list.add(portId.getName()); } シリアルポートだけ取得する場合は CommPortIdentifier portId; ArrayList list = new ArrayList(); Enumeration en = CommPortIdentifier.getPortIdentifiers(); while (en.hasMoreElements()) { portId = (CommPortIdentifier) en.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { list.add(portId.getName()); } } という風に条件を付ける。 パラレルの場合はPORT_SERIALをPORT_PARALLELにする。 北陽電機(HOKUYO)製の測域センサURGの距離取得プログラム例 URG-X04LX(プロトコルはSCIP1.0)に対応(してるはず)。 下記の添付ファイルをダウンロードしてください。 ※各自の責任において使用してください。作者は一切の責任を負いかねます。 リンク FA のための Java プログラミング講座 http //www.javainthebox.net/JavaForFA/08-09CommAPI/No.08/commapi1.html http //www.javainthebox.net/JavaForFA/08-09CommAPI/No.09/commapi2.html
https://w.atwiki.jp/ce00582/pages/1252.html
import javax.swing.*; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.*; import java.awt.Color; import java.awt.BasicStroke; public class tax32 extends JPanel{ public static void main(String[] args){ JFrame frame = new JFrame(); tax32 app = new tax32(); frame.getContentPane().add(app); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(0, 0, 500, 500); frame.setTitle("Mirrlees(1971)の追試"); frame.setVisible(true); } public void paintComponent(Graphics g){ int n; double data[]=new double[201]; Graphics2D g2 = (Graphics2D)g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); data=tax(); for (n=1;n 99;n++){ g2.draw(new Line2D.Double(500*data[n], 500-500*data[n+100], 500*data[n+1],500-500*data[n+101])); } } static double[] tax(){ double th[]= new double[101]; double c[]= new double[101]; double y[]= new double[101]; int opc[]= new int[101]; int opy[]= new int[101]; int opq[]= new int[101]; double u[][][]=new double[101][3][3]; double ww[][][]=new double[100][3][3]; double v[][][][]=new double[100][3][3][21]; int gotoc[][][][]=new int[100][3][3][21]; int gotoy[][][][]=new int[100][3][3][21]; int gotoq[][][][]=new int[100][3][3][21]; double endv[][]=new double[3][3]; int endc[][]=new int[3][3]; int endy[][]=new int[3][3]; int endq[][]=new int[3][3]; int s; double ls; double w; double cs; double ys; double b1; double b2; double wel; double maxwel; int t; int n; int n1; int n2; int pp; int q; int j; double c1; double l1; double h; double u1; int ns1; int ns2; int qx; int nx1; int nx2; double vs; double v1; double maxv; double dc; double dy; int e; double data1[]=new double[101]; double data2[]=new double[201]; double data3[]=new double[201]; double maxy; data1=ex1(); data2=ex2(); for (s=1;s 101;s++){ c[s]=data2[s]; y[s]=data2[s+100]; } for (s=1;s 101;s++){ th[s]=data1[s]; } h=0.001; t=0; while(t 1000){ for (s=1;s 101;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ c1=c[s]+n1*h; l1=(y[s]+n2*h)/th[s]; u1=ux(c1,l1); u[s][n1+1][n2+1]=u1; } } } for (s=1;s 100;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ c1=c[s]+n1*h; l1=(y[s]+n2*h)/th[s+1]; u1=ux(c1,l1); ww[s][n1+1][n2+1]=u1; } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ for (q=-10;q 11;q++){ v[1][n1+1][n2+1][q+10]=-999; } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ q=n2-n1; v[1][n1+1][n2+1][q+10]=u[1][n1+1][n2+1]; } } for (s=2;s 100;s++){ for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ for (q=-10;q 11;q++){ u1=u[s][n1+1][n2+1]; qx=q-n1+n2; pp=0; if (qx 10)pp=100; if (qx -10)pp=100; if (pp 50)qx=0; vs=-999; ns1=0; ns2=0; for (nx1=-1;nx1 2;nx1++){ for (nx2=-1;nx2 2;nx2++){ v1=u1+v[s-1][nx1+1][nx2+1][qx+10]; if (ww[s-1][nx1+1][nx2+1] u1)v1=-999; if (v1 vs)ns1=nx1; if (v1 vs)ns2=nx2; if (v1 vs)vs=v1; } } if (pp 50)vs=-999; gotoc[s][n1+1][n2+1][q+10]=ns1; gotoy[s][n1+1][n2+1][q+10]=ns2; gotoq[s][n1+1][n2+1][q+10]=qx; v[s][n1+1][n2+1][q+10]=vs; } } } } for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ u1=u[100][n1+1][n2+1]; qx=n2-n1; vs=-999; ns1=0; ns2=0; for (nx1=-1;nx1 2;nx1++){ for (nx2=-1;nx2 2;nx2++){ v1=u1+v[99][nx1+1][nx2+1][qx+10]; if (ww[99][nx1+1][nx2+1] u1){ v1=-999; } if (v1 vs){ ns1=nx1; } if (v1 vs){ ns2=nx2; } if (v1 vs){ vs=v1; } } } endc[n1+1][n2+1]=ns1; endy[n1+1][n2+1]=ns2; endq[n1+1][n2+1]=qx; endv[n1+1][n2+1]=vs; } } maxv=-999; ns1=0; ns2=0; for (n1=-1;n1 2;n1++){ for (n2=-1;n2 2;n2++){ if (endv[n1+1][n2+1] maxv){ ns1=n1; } if (endv[n1+1][n2+1] maxv){ ns2=n2; } if (endv[n1+1][n2+1] maxv){ maxv=endv[n1+1][n2+1]; } } } opc[100]=ns1; opy[100]=ns2; opc[99]=endc[opc[100]+1][opy[100]+1]; opy[99]=endy[opc[100]+1][opy[100]+1]; opq[99]=endq[opc[100]+1][opy[100]+1]; for (j=1;j 99;j++){ s=99-j; opc[s]=gotoc[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; opy[s]=gotoy[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; opq[s]=gotoq[s+1][opc[s+1]+1][opy[s+1]+1][opq[s+1]+10]; } e=0; for (s=1;s 101;s++){ e=e+opc[s]*opc[s]+opy[s]*opy[s]; } for (s=1;s 101;s++){ c[s]=c[s]+opc[s]*h; y[s]=y[s]+opy[s]*h; } System.out.println(e); if (e 2){ h=h/2; } if (h 0.00001){ t=10000; } t=t+1; } maxy=-999; for (s=1;s 101;s++){ if (y[s] maxy)maxy=y[s]; } for (s=1;s 99;s++){ dc=c[s+1]-c[s]; dy=y[s+1]-y[s]; data3[s]=0; if (dy 0)data3[s]=1-dc/dy; } for (s=1;s 100;s++){ data3[s+100]=y[s]/maxy; } return data3; } static double[] ex2(){ double th[]= new double[101]; int s; double tl; double tr; double ls; double w; double cs; double ys; double b1; double b2; double tr1; double tr2; double tr3; double wel; double maxwel; double maxtl; double maxtr; int t; int n; double h; double c[]= new double[101]; double y[]= new double[101]; double data1[]=new double[101]; double data[]=new double[201]; int n1; int n2; data1=ex1(); for (s=1;s 101;s++){ th[s]=data1[s]; } maxwel=-999; maxtr=0; maxtl=0; for (n=20;n 45;n++){ tl=0.01*n; tr1=0.01; tr2=0.02; tr=tr1; b1=bud(tl,tr1,th); t=0; while (t 100) { b2=bud(tl,tr2,th); tr3=tr2-b2*(tr2-tr1)/(b2-b1); tr1=tr2; tr2=tr3; b1=b2; if (b2*b2 0.00001)t=1000; t=t+1; } tr=tr2; wel=seekwel(tl,tr,th); if (wel maxwel)maxtl=tl; if (wel maxwel)maxtr=tr; if (wel maxwel)maxwel=wel; } tl=maxtl; tr=maxtr; for (s=1;s 101;s++){ w=(1-tl)*th[s]; ls=(w-tr)/(2*w); if (ls 0)ls=0; c[s]=w*ls+tr; y[s]=th[s]*ls; } for (s=1;s 101;s++){ data[s]=c[s]; data[s+100]=y[s]; } return data; } static double ux(double c1,double l1){ double u1; double c3; double l3; int pp; pp=0; c3=c1; l3=l1; if (c3 0)pp=100; if (l3 0)pp=100; if (l3 1)pp=100; if (pp 50)c3=0.5; if (pp 50)l3=0.5; u1=Math.log(c3)+Math.log(1-l3); if (pp 50)u1=-999; return u1; } static double bud(double tl,double tr,double th[]){ double bx; int s; double w; double y1; double c1; double l1; bx=0; for (s=1;s 101;s++){ w=(1-tl)*th[s]; l1=(w-tr)/(2*w); if (l1 0)l1=0; y1=th[s]*l1; c1=w*l1+tr; bx=bx+y1-c1; } return bx; } static double seekwel(double tl,double tr,double th[]){ double sw; int s; double w; double l1; double c1; sw=0; for (s=1;s 101;s++){ w=(1-tl)*th[s]; l1=(w-tr)/(2*w); if (l1 0)l1=0; c1=w*l1+tr; sw=sw+ux(c1,l1); } return sw; } static double[] ex1(){ double p; double mu; double sig; double yy; double th[]= new double[101]; int s; mu=0; sig=0.39; for (s=1;s 101;s++){ p=0.01*s-0.005; yy=seeky(p,mu,sig); th[s]=Math.exp(yy); } return th; } static double f(double x,double mu,double sig){ double pi,x1,x2,x3,fx; pi = 3.1415; x1=-Math.pow(x - mu,2) / (2*Math.pow(sig,2)); x2=Math.exp(x1); x3=sig*Math.pow(2*pi,0.5); fx=x2/x3; return fx; } static double g(double y,double mu, double sig){ double gx,h,x; int n,t; gx=0; h=0.001; t=(int)(y/h); for (n=-2000;n t;n++){ x=n*h; gx=gx+f(x,mu,sig)*h; } return gx; } static double seeky(double p,double mu,double sig){ double g1,g2,y1,y2,y3; int t; y1=0.4; y2=-0.2; g1=g(y1,mu,sig); t=0; while(t 100){ g2=g(y2,mu,sig); y3=y2+(p-g2)*(y2-y1)/(g2-g1); y1=y2; y2=y3; g1=g2; if (Math.pow(p-g2,2) 0.0001)t=1000; t=t+1; } return y2; } }
https://w.atwiki.jp/goemode/pages/12.html
GC ( Garbage Collection )Scavenge GC Full GC 起動オプション プロセスIDを確認 現在の割り当てをみる ガーベージコレクションの統計情報を確認 参考 とりあえず読んどけ とりあえずメモ GC ( Garbage Collection ) Scavenge GC New 領域が不足した場合に実行され、主に New 領域が対象です。比較的、頻繁に行われ、短い時間で処理が終わります。 Full GC New 領域、Old 領域、Permanent 領域が不足した場合に実行されます。 起動オプション 起動オプション 各値の初期値は、各値の最大値と同じ大きさに設定すること -Xms=256M -Xmx=256M -XX PermSize=128M -XX MaxPermSize=128M -Xms ヒープ全体の初期値 -Xmx ヒープ全体の最大値 -XX NewSize New 領域の初期値 -XX MaxNewSize New 領域の最大値 -XX PermSize Permanent 領域の初期値 -XX MaxPermSize Permanent 領域の最大値 プロセスIDを確認 # jps 3011 Jps 3098 Bootstrap 現在の割り当てをみる # jmap -heap [プロセスID] ガーベージコレクションの統計情報を確認 上記のBootstrapのプロセスIDを基に以下で1秒おきに統計を取得 # jstat -gcutil [プロセスID] 1000 [[見方 http //java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/share/jstat.html#gcutil_option]] | color(gray){列}|説明| |S0|Survivor 領域 0 の使用率 (現在の容量に対するパーセンテージ) | |S1|Survivor 領域 1 の使用率 (現在の容量に対するパーセンテージ) | |E|Eden 領域の使用率 (現在の容量に対するパーセンテージ) | |O|Old 領域の使用率 (現在の容量に対するパーセンテージ) | |P|Permanent 領域の使用率 (現在の容量に対するパーセンテージ) | |YGC|Young 世代の GC イベント数 | |YGCT|Young 世代のガベージコレクション時間 | |FGC|フル GC イベント数 | |FGCT|フルガベージコレクション時間 | |GCT|ガベージコレクション総時間 | 参考 [[@IT Javaパフォーマンスチューニング 第3回 Javaのヒープ・メモリ管理の仕組み http //www.atmarkit.co.jp/fjava/rensai3/devedge03/devedge03_1.html]] [[@IT:連載:J2EEパフォーマンスチューニング http //www.atmarkit.co.jp/fjava/rensai/j2eeprfm04/j2eeprfm04_1.html]] [[SUN jstat(Java 仮想マシン統計データ監視ツール)のマニュアル http //java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/share/jstat.html#gc_option]] [[SUN jps(Java 仮想マシンプロセスステータスツール)のマニュアル http //java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/share/jps.html]] [[Servletシステムのパフォーマンスチューニング http //www.ingrid.org/java/jserv/performance/]] [[事例に学ぶWebシステム開発のワンポイント(6) http //www.atmarkit.co.jp/fjava/rensai2/webopt06/webopt06.html]] [[事例に学ぶWebシステム開発のワンポイント(9) http //www.atmarkit.co.jp/fjava/rensai2/webopt09/webopt09.html]] とりあえず読んどけ http //www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html とりあえずメモ http //www.ginnokagi.com/2008/03/tomcatjvmjava_virtual_machine.html http //blog.livedoor.jp/surabaya/archives/51383872.html http //amsoft.minidns.net/node/132 http //symple.jp/66.html
https://w.atwiki.jp/ce00582/pages/1270.html
import javax.media.j3d.*; import com.sun.j3d.utils.universe.*; import java.awt.*; import javax.swing.*; import com.sun.j3d.utils.geometry.*; public class ex65 { public static void main(String[] args) { ex65 test = new ex65(); } public ex65() { JFrame frame = new JFrame(); frame.setSize(250,250); frame.setTitle("ex65"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel cp = new JPanel(); cp.setLayout(null); frame.add(cp); GraphicsConfiguration g_config = SimpleUniverse.getPreferredConfiguration(); Canvas3D canvas = new Canvas3D(g_config); canvas.setBounds(0,0,250,250); cp.add(canvas); SimpleUniverse universe = new SimpleUniverse(canvas); frame.setVisible(true); BranchGroup group1 = new BranchGroup(); Sphere sphere = new Sphere(0.5f); group1.addChild(sphere); universe.addBranchGraph(group1); } }